
#ifndef _ITIPSBOARD_H_
#define _ITIPSBOARD_H_

#include <ctime>
#include <BWidget>
#include "IRound.h"
#include "ITextBlock.h"

namespace BWE
{
	class BPainter;

	class ITipsBoard
	{
		friend class BMessageBox;
	public:
		ITipsBoard();
		~ITipsBoard();

		void reset(BWidget* hoveredWidget);
		void freshStyles();
		const BValue& findValue(StyleValue name);
		const BColor* findColor(StyleColor name);
		const BImage* findImage(StyleImage name);

		bool update();
		void fresh();
		void paint();
		void frame(GLuint msfbo, GLenum mode);

		BWidget*			root;
		BWidget*			widget;
		bool				dirty;
		bool				visible;
		BSize				fbo_size;
		bool				resized;
		BUInt				fbo;
		BUInt				tbo;
		BPoint				pos;
		BRect				area;
		BRect				crect;
		int					border;
		BMargin				margin;
		ITextBlock			block;
		BReal				tipsTick;
		BHolder<IRound>		round;
		BArray<const BStyle*>	styles;

	};
}

#endif